READONLYキャッシュ・グループの作成
  
 「TimesTenおよびOracleの設定」の説明に従ってTimesTenおよびOracleを設定した後、キャッシュ・グループを作成できます。
  
 この項では、Oracleデータベースの単一の表の内容をキャッシュする、単純なREADONLYキャッシュ・グループの作成方法について説明します。キャッシュ・グループは複数の表で構成できますが、ここでは、わかりやすくするために、1つのOracle表のみをキャッシュする例を示します。
  
 図2.1 単純なREADONLYキャッシュ・グループ
 
  
 手順は次のとおりです。
   
 手順1: Oracle表の作成
  
 図2.2 Oracle表の作成
 
  
 新しいOracleアカウントに接続し、表を作成します。
  sqlplus testuser/mypsswrd@system1
   SQL> CREATE TABLE readtab (a NUMBER(10,0) NOT NULL PRIMARY KEY,
     b CHAR(31));
  
 次に、数行挿入して変更をコミットします。
   SQL> INSERT INTO readtab VALUES (1, 'hello');
   SQL> INSERT INTO readtab VALUES (2, 'world');
  SQL> COMMIT;
  
 手順2: キャッシュ・グループの作成
  
 図2.3 READONLYキャッシュ・グループの作成
 
  
 ttIsqlユーティリティを使用してcgDSNデータ・ストアに接続します。コマンド・プロンプトで、ttCacheUidPwdSetプロシージャを使用してキャッシュ管理ユーザーIDおよびパスワードをパラメータとして渡します。その後、ttCacheStartプロシージャをコールしてデータ・ストアのキャッシュ・エージェントを起動します。この例では、キャッシュ管理ユーザーIDはtestuser、パスワードはmypsswrdです。
   > ttIsql cgDSN
  Command> call ttCacheUidPwdSet('testuser','mypsswrd');
  Command> call ttCacheStart();
  注意: この例では、キャッシュ管理ユーザーのIDおよびパスワードはOracleのユーザー名およびパスワードと同じです。ただし、Oracleユーザー・アカウントがOracleからの自動リフレッシュに必要な権限を持っていないため、別のキャッシュ管理ユーザー・アカウントを指定する必要がある場合があります。キャッシュ管理ユーザーIDおよびパスワードは、データ・ストアに対して1回のみ設定する必要があります。詳細は、「
Oracleユーザーの作成および権限の設定」を参照してください。
   
 次に、CREATE CACHE GROUP文を使用して、readcacheというREADONLYキャッシュ・グループを作成し、TimesTenにOracle表readtabの内容をキャッシュします。
  Command> CREATE READONLY CACHE GROUP readcache
   > AUTOREFRESH INTERVAL 5 SECONDS
   > FROM readtab (a INT NOT NULL PRIMARY KEY, b CHAR(31));
  注意: CREATE CACHE GROUP文のUNIQUE HASH...PAGES句を使用して、ハッシュ索引値の適切なサイズを設定し、ロード・パフォーマンスを向上させます。PAGESの値は(予想行数)/256にする必要があります。
  
 手順3: キャッシュ・グループのロード
  
 Oracle表の内容をキャッシュ・グループ表にロードします。
  Command> LOAD CACHE GROUP readcache COMMIT EVERY 30 ROWS;
  
 TimesTenウィンドウで、readtab表の内容を確認します。
  Command> SELECT * FROM readtab;
   < 1, hello                           >
   < 2, world                           >
  2 rows found
  
 ttIsql cachegroupsコマンドを使用して、READCACHEキャッシュ・グループの定義を確認します。
  Command> cachegroups;
  Cache Group TESTUSER.READCACHE:
  Cache Group Type: Read Only (Autoload on Create)
  Autorefresh: Yes
   Autorefresh Mode: Incremental
   Autorefresh State: On
  Autorefresh Interval: 5 Seconds
  Autorefresh Limit: 10000
  Root Table: TESTUSER.READTAB
  Table Type: Read Only
  1 cache group found.
  
 手順4: Oracle表の更新
  
 図2.4 Oracle更新でのTimesTenの自動リフレッシュ
 
  
 SQL*Plusを使用して、数行をREADTABに挿入し、変更をコミットします。
   SQL> INSERT INTO readtab VALUES (3, 'Hello');
   SQL> INSERT INTO readtab VALUES (4, 'Again');
  SQL> COMMIT;
  
 5秒後に、TimesTenは、Oracleからキャッシュされたデータを自動的にリフレッシュします。ttIsqlで、READTAB表の内容を確認します。
  Command> SELECT * FROM readtab;
   < 1, hello                           >
   < 2, world                           >
   < 3, Hello                           >
   < 4, Again                           >
  4 rows found
  
 手順5: キャッシュ・グループの削除
  
 TimesTenウィンドウで、DROP CACHE GROUP文を使用してTimesTenデータ・ストアからキャッシュ・グループを削除します。
  Command> DROP CACHE GROUP readcache;
  
 手順6: キャッシュ・エージェントの停止
  
 ttCacheStopプロシージャをコールして、データ・ストアのキャッシュ・エージェントを停止します。
  Command> call ttCacheStop();